Widely used digital filters perform filtering on signals in a time domain. Some known examples of such digital filters include FIR (Finite Impulse Response) filters and IIR (Infinite Impulse Response) filters. In general, filter processing based on an FIR or IIR filter includes two processes: a filtering process through real-number calculation using a real-number filter coefficient, and a filtering process through complex-number calculation using a complex-number filter coefficient.
The minimum value of taps for an FIR or IIR filter is determined based on the impulse response length of the filter function to be implemented. Thus, to implement a complicated filter function, the required number of taps may be 100 or more. A LSI (Large Scale Integrated) circuit on which an FIR filter involving such large number of taps is mounted poses a problem that the circuit size and power consumption are enormous.
One proposed solution to the problem is to perform a filtering process in a frequency domain. In the filtering process in the frequency domain, a time-domain signal is first transformed into frequency-domain signal data through an FFT (fast Fourier transform). Then, filter calculation is performed on the signal data with a filter coefficient in the frequency domain, followed by an IFFT (inverse fast Fourier transform) through which the signal is retransformed into a time-domain signal.
Performing a filtering process in the frequency domain can reduce the circuit size and power consumption needed for implementing filtering processes despite any large number of taps for an FIR filter. This is because a convoluted calculation in the time domain by means of an FIR filter can be converted into a simple multiplication in the frequency domain.
By the way, in the case where the time-domain signal is a complex-number signal represented by x(n)=r(n)+js(n), where j is an imaginary unit and n is an integer, the complex-number signal in the time domain is transformed into complex-number signal data in the frequency domain through a complex FFT. In the complex FFT, the real part and the imaginary part of a complex-number signal in the time domain are combined and transformed into complex-number signal data in the frequency domain.
FIG. 10 illustrates an example configuration of a digital filter circuit where a complex-number signal in the time domain is transformed into complex-number signal data in the frequency domain through a complex FFT, and then filter calculation is performed in the frequency domain. The digital filter circuit 800 in FIG. 10, which includes three frequency-domain filters 810, 820, and 830, performs filtering on a complex-number signal x(n) (=r(n)+js(n)) in the frequency domain.
The frequency-domain filter 810 transforms a real part signal r(n), which is the real part of an inputted complex-number signal x(n) in the time domain, into complex-number signal data in the frequency domain through an FFT. Next, the frequency-domain filter 810 performs filter calculation in the frequency domain on the frequency-domain complex-number signal data, and then retransforms the data into a time-domain real part signal r′(n) through an IFFT. Although the real part signal r(n) is a real-number signal, a Fourier transform performed on the real-number signal produces complex-number signal data. Usually, a filter coefficient is also a complex number. For this reason, complex-number calculation is required for filter calculation.
The frequency-domain filter 820 transforms a real-number imaginary part signal s(n), which is the imaginary part of an inputted complex-number signal x(n) in the time domain, into complex-number signal data in the frequency domain through an FFT. Next, the frequency-domain filter 820 performs, in the frequency domain and through complex-number calculation, filter calculation on the complex-number signal data in the frequency domain, and then retransforms the data into a real-number imaginary part signal s′(n) in the time domain through an IFFT.
The frequency-domain filter 830 transforms the complex-number signal x′(n)=r′(n)+js′(n), which is composed of the real part signal r′(n) and the imaginary part signal s′(n), into complex-number signal data in the frequency domain through an FFT. Next, the frequency-domain filter 830 performs, in the frequency domain and through complex-number calculation, filter calculation on the complex-number signal data in the frequency domain, and then retransforms the data into a complex-number signal x″(n) in the time domain through an IFFT.
The digital filter circuit 800 in FIG. 10, however, performs filtering processes through separated complex-number calculation on each of the real part and the imaginary part of a time-domain complex-number signal, which means an FFT and an IFFT are required for each of the filtering processes on the real part and the imaginary part.
Hence, the inventors of the present invention proposed a digital filter circuit for performing filtering processes in the frequency domain through a minimum number of FFTs and IFFTs (PTL 1). FIG. 11 illustrates a block configuration diagram of the digital filter circuit according to PTL 1.
In the digital filter circuit 900 illustrated in FIG. 11, the complex conjugate generating circuit 920 uses complex-number signal data X(k) and X(N−k) in the frequency domain, which have been outputted from the FFT circuit 910, to generate complex-number signal data X(k) and complex conjugate data X*(N−k), which are then outputted to the filter circuits 940 and 950, respectively. On the other hand, the filter coefficient generating circuit 930 uses complex-number coefficients V(k), W(k), and H(k), which have been given by a higher-level circuit, to generate complex-number coefficients C1(k) and C2(N−k), which are then outputted to the filter circuits 940 and 950, respectively.
The filter circuits 940 and 950 then perform filtering processes on the complex-number signal data X(k) and the complex conjugate data X*(N−k) with the complex-number coefficients C1(k) and C2(N−k), respectively, to generate complex-number signal data X′(k) and complex conjugate data X*′(N−k). Next, the complex conjugate combining circuit 960 combines the complex-number signal data X′(k) with the complex conjugate data X*′(N−k) to output X″(k), which is then subjected to an IFFT process in the IFFT circuit 970 to output x″(k).
Setting appropriate complex-number coefficients V(k), W(k), and H(k) needs only one FFT and one IFFT for filter processing in the frequency domain, thereby reducing the circuit size and power consumption.